Pipes & Filter
Sıklıkla ihtiyaç duyulan bir komut dizisine göz atacağız. Filter komutların kullanımı aşağıdaki gibi yazılmaktadır.
komut | komut >> ilk komutun çıktısı sonraki komuta iletilir. Pipe işareti birinci komutun çıktısını ikinci komuta girdi olarak verir.
Sırayla komutların kullanımına bakalım.
tail/head
tail ile textin sondan seçilen kadar head ile de textin baştan seçilen kadar satırı listelenir özellikle çok uzun texlerde içeriğe özet olarak bakmak için çok kullanışlıdır.

tail veya head sonrasında parametre verilmez ise varsayılan değer 10 dur.
grep
kendisinden sonra yazılan kelimeyi içerik olarak arar ve geçtiği satırları filtreler.

deneme txt 4 satırdan oluşmakta ve ben içerisinde "çok" ifadesi geçen cümlerleri yazdırmak istiyorum. cat komutu ile deneme.txt içerisini göster diyorum ama pipe işareti ile de grep komutu ile filtreleme yaptırıyorum.
Aldığı parametreler:
-v > eşleşmeyen tüm satırları yazdırır. cat deneme.txt | grep -v çok >>"çok" içermeyen satırlar.
-n > eşleşen satırları satır numaralarıyla yazdırır. cat deneme.txt | grep -n çok

-c > sadece eşleşen satır sayısını yazdırır.

-i > büyük/küçük harf duyarsız yani insensitive yazdırır.

-A1 > eşleşen satırı ve bir sonraki satırı yazdırır.
-B1 > eşleşen satırı ve bir önceki satırı yazdırır.
-C1 > eşleşen satır, bir alt ve bir üst satırı yazdırır.
-w > parametresi ile tamamen eşleşmesi durmunda yazdırır.
cut
Bu komutu anlatmadan önce parametrelerini bilmek gerekiyor. bir text den arzu attiğiniz yeri alıyorsunuz.cut
b, --bytes=LIST: byte olarak kesmek için
c, --characters=LIST: karakterleri seçmek için
d, --delimiter=DELIM: sınırlayıcı belirtme için(ayraç)
f, --fields=LIST: belirli bir alanı seçmek için(sütun)
n: Herhangi bir seçeneği yok saymak için kullanılır.
-complement: Seçilen bayt, karakter veya alan kümesini tamamlamak için kullanılır.

delimeter olarak ":" karakteri verildi. sutün olarak da f ile 1-3 arası süütunlar seçildi.

-c ile karakter alıyoruz demiştik. c1-3 ile 1.ve 3. karakter arasını al demek istiyoruz.
tr
komut | tr <'eski'> <'yeni'>

text'de istediğiniz değeri yine istediğiniz farklı bir değerle değiştirmek için kullanabilirsiniz.

Yukarıdaki örnek te de satır atlama yerine boşluk kullandık.
-d parametresi ile verilen kısmı siler

değiştime işlemini aralık verip de yapabiliriz aşağıdaki gibi.

Türkçe karakterleri beceremedi 😂
wc (Word Count)

Parametresiz kullanıldığında text'te kaç satır kaç kelime kaç karakter yazdırır.
-l parametresiyle sadece satır sayısını.
-w parametresiyle sadece kelime sayısını.
-m parametresiyle sadece karakter sayısını.
-c parametresiyle sadece byte sayısını(boşluklar dahil) gösterir.
sed (Stream Editor)
sed <"s/aranacakifade/yeniifade/g"> dosya

ELMA'yı VİŞNE ile değiştirdi. Aynı işlemi tr komutu ile de yapabilirdik. "(tırnak) önemli. ifade tırnak içinde olmalı.
tac
tac komutu cat komutunun tersi işlem yapar. En alt satırı en üste getirir. tail komutu ile aynı değildir dikkat edelim.

nl (number lines)
satırları numaralandırmış şekilde gösterir.

satır numarasından sonra "." veya "-" koymak için parametre kullanmak gerekir.
-s ile sayıdan sonra eklenecek karakter
-w ile satır numarası öncesinde boşluk bırakma.

uniq
Tekrar eden satırlardan sadece birini almaya yarar. yanlışlıkla birden fazla girilen veriyi temizlemede kullanılabilir.

Dikkat ederseniz tekrar için sadece kendinden sonraki satıra bakıyor. Diyelim 2 alt satırda aynısı var silmiyor. Bunun önüne geçmek için sort komutu ile sıralayıp tekrarlar peşpeşe getirilir ve tüm tekrarlar gider.
-D parametresi ile sadece tekrar eden satırları getirir.

-c parametresi ile hangi satır kaç kez tekrar etmiş bulunabilir.

sort
